package org.example.lock8;

import java.util.concurrent.TimeUnit;

/**
 * 8锁问题（理解什么是锁，锁的是什么？）
 * 5. 发短信静态同步，打电话非静态同步？ 打电话
 * 6. 两个对象？                     打电话
 */
public class Lock04 {

    public static void main(String[] args) throws InterruptedException {
        Phone4 phone1 = new Phone4();
        Phone4 phone2 = new Phone4();
        new Thread(() -> {
            phone1.sendEmail();
        }).start();
        TimeUnit.SECONDS.sleep(1);
        new Thread(() -> {
            phone2.sendSms();
        }).start();
    }
}

// 手机
class Phone4 {

    // static synchronized 锁的时Class对象，全局唯一的一把锁
    public static synchronized void sendEmail() {
        try {
            TimeUnit.SECONDS.sleep(4);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("发短信");
    }

    // synchronized 锁的时调用者
    public synchronized void sendSms() {
        System.out.println("打电话");
    }

}
